Modern computer networks have lead to an increased use of distributed database systems. To facilitate different applications, distributed database systems may rely upon an exchange of data between distributed parts. One type of information exchange, or replication, involves the detection and transfer of newly added or modified information from one database to another location. An example system that uses distributed database replication is an email system. Such a system detects changes and synchronizes different types of data objects: emails, calendar appointments, application data, business process tasks, and other types of information between mobile client devices and an email server.
Databases may have different capabilities with respect to synchronization. Some systems—so called “active notification” or “push” systems—may actively respond to data changes by pushing these changes out to connected parts of distributed database systems. In a push system, the server may initiate a data transfer without a specific request from the client. In an email context, this push system may respond to a new email by actively notifying the client device and transferring the email to the remote system. The client device would not have to request any updates.
Another approach to database synchronization involves the so-called “passive” or “pull” system. In this type of system, the database server generally does not initiate a transfer without a specific request from a client system. These pull systems may rely upon a “polling” mechanism, wherein a client system periodically requests any updates that are available on the server system, and the server then responds with any outstanding updates. In an email context, this approach may involve a server receiving an email, a client polling the server for changes and the email being transferred in response to the polling.
A system that exhibits the benefits of both active/push systems and passive/pull systems would be desirable.